package com.example.common.core.domain;

import com.example.common.core.enums.ResultCode;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

/**
 * 表格分页数据对象
 */

@Getter
@Setter
public class TableDataInfo {

    /**
     * 总记录数
     */
    private long total;

    /**
     * 列表数据
     */
    private List<?> rows;

    /**
     * 消息状态码
     */
    private int code;

    /**
     * 消息内容
     */
    private String msg;

    /**
     * 表格数据对象
     */
    public TableDataInfo() {
    }

    /**
     * 未查出任何数据调用
     * @return
     */
    public static TableDataInfo empty() {
        TableDataInfo resData = new TableDataInfo();
        resData.setTotal(0);
        resData.setRows(new ArrayList<>());
        resData.setCode(ResultCode.SUCCESS.getCode());
        resData.setMsg(ResultCode.SUCCESS.getMsg());
        return resData;
    }


    /**
     * 查出数据时调用
     * @param list
     * @param total
     * @return
     */
    public static  TableDataInfo success(List<?> list, long total) {
        TableDataInfo resData = new TableDataInfo();
        resData.setTotal(total);
        resData.setRows(list);
        resData.setCode(ResultCode.SUCCESS.getCode());
        resData.setMsg(ResultCode.SUCCESS.getMsg());
        return resData;
    }
}
